The institute of electrical and electronic engineers (IEEE) has created a Ethernet specification 802.3X dated 1998. This specification standardizes a way in which transmitting and receiving ports communicate with each other. One of the requirements of this specification is that a receiving port can flow control a corresponding transmitting port between an enabled state and a blocking state. In a particular situation where a flow controllable transmitting port is located, a plurality of transmitting ports receives data from a shared resource. This shared resource sends data frames to the individual transmitting ports. Buffers are placed between the transmitting ports and the shared resource to buffer the movement of data frames from the shared resource to the corresponding data port. When a transmitting port is in the blocked state, the buffer can overflow and no longer accept data from the shared resource.
The buffers and shared resources in many situations are designed to transfer data so reliably, that if a specific buffer becomes full, and the shared resource has a data frame to transfer to that buffer, the shared resource will stop any further operation until the specific data frame can be transferred to the specific buffer. This is a very simple and reliable design, and already exists in many applications. The creation of receive ports which can flow control corresponding transmitting ports, is a new development and can cause existing buffers to quickly overflow and stop operation of the shared resource. This is disadvantageous because the remaining transmitting ports serviced by the shared resource may be able to transmit, and have data frames waiting in the shared resource for sending to corresponding transmitting ports. However, because a single transmitting port is in the block state, and its corresponding buffer overfilled, the shared resource is no longer operating. In this way a single transmitting port in the block state can prevent or disable all other ports associated with a shared resource to stop operation.
This is quite often the case in cross point switches of an Ethernet network. The shared resource is a FIFO with associated logic that sends data frames from the FIFO to corresponding buffers and transmitting ports. The creation of flow controllable transmitting ports, while beneficial in many ways, creates a problem in that the remaining transmitting ports of a shared resource can easily be rendered useless which reduces the operation of the network.